package com.likeycy.my.heap;

/**
 * @ClassName: DiyHeap
 * @Description: 堆结构公共接口
 * @Author: sodagreen
 * @Date: 2021/3/27 2:14
 * @Version: 1.0
 */
public interface DiyHeap<E> {

    /**
     * 元素的数量
     */
    int size();

    /**
     * 是否为空
     */
    boolean isEmpty();

    /**
     * 清空元素
     */
    void clear();

    /**
     * 添加元素
     */
    void add(E element);

    /**
     * 获取堆顶的元素
     *
     */
    E get();


    /**
     * 删除堆顶的元素
     */
    E remove();

    /**
     * 删除堆顶元素的同时插入一个新的元素
     */
    E replace(E element);

}
